INTERACTIVITÉ
Actionscript > Ciblage d’une variable
par : mc
Exercice inspiré de flashxpress
Vous pouvez cibler des variables de la même manière que des occurrences en utilisant la même syntaxe à point et les mêmes propriétés (_root, _level, _parent, _this).
Dans l’exemple suivant, les variables déterminant la vitesse d’une occurrence sont déclarées dans la ligne du temps principale. Les boutons modifiant ces variables pourraient donc pointer vers le niveau _root (racine en anglais), mais cet usage étant déconseillé (voir article Actionscript > Level), j’ai utilisé _parent (qui fait remonter l’instruction d’un niveau). Les variables déterminant la vitesse de l’autre occurrence sont déclarées dans celle-ci. Les boutons modifiant ces variables devront donc pointer vers elle en l’appelant par son nom.
1. Créez un nouveau fichier, déposez sur la scène 2 occurrences de movieClip nommées « rond1 » et rond2 », déposez sur la scène 8 occurrences de bouton nommées de « bouton1 » à « bouton8 ».
2. En sélectionnant le movieClip « rond1 », écrivez dans la fenêtre « Actions » le code suivant :
var vit1x;
var vit1y;
}
>>> Au chargement du movieClip, les variables vit1x et vit1y sont déclarées en son sein.
3. En sélectionnant le movieClip « rond2 », écrivez dans la fenêtre « Actions » le code suivant :
this._x += _parent.vit2x;
this._y += _parent.vit2y;
>>> Lors de chaque changement d’image dans la ligne du temps, les positions horizontales et verticales de ce movieClip sont incrémentées de la valeur des variables vit2x et vit2y déclarées au niveau supérieur, c’est-à-dire dans ce cas la ligne du temps principale.
_parent.vit2x = -_parent.vit2x;
} else if (this._y <= 20 || this._y >= 380) {
_parent.vit2y = -_parent.vit2y;
}
}
>>> Si la position horizontale de ce movieClip est inférieure à 20px ou supérieure à 380px, la variable vit2x devient négative. Idem pour la variable vit2y.
4. En sélectionnant la 1ère image de la ligne du temps principale, écrivez dans la fenêtre « Actions » le code suivant :
var vit2x ;
var vit2y ;
>>> les variables vit2x et vit2y sont déclarées à ce niveau.
this._x += this.vit1x;
this._y += this.vit1y;
>>> Lors de chaque changement d’image dans la ligne du temps, les positions horizontales et verticales du movieClip « rond1 » sont incrémentées de la valeur des variables vit1x et vit1y déclarées en son sein.
this.vit1x = -this.vit1x;
} else if (this._y <= 20 || this._y >= 380) {
this.vit1y = -this.vit1y;
}
}
>>> Si la position horizontale du movieClip « rond1 » est inférieure à 20px ou supérieure à 380px, la variable vit1x, déclarée en son sein, devient négative. Idem pour la variable vit1y.
rond1.vit1x = 10;
}
>>> En cas de survol du « bouton1 », la variable « vit1x » déclarée dans la movieClip « rond1 » prend la valeur 10.
rond1.vit1x = -10;
}
>>> En cas de survol du « bouton2 », la variable « vit1x » déclarée dans la movieClip « rond1 » prend la valeur -10.
rond1.vit1y = 10;
}
>>> En cas de survol du « bouton3 », la variable « vit1y » déclarée dans la movieClip « rond1 » prend la valeur 10.
rond1.vit1y = -10;
}
>>> En cas de survol du « bouton4 », la variable « vit1y » déclarée dans la movieClip « rond1 » prend la valeur -10.
vit2x = 10;
}
>>> En cas de survol du « bouton5 », la variable « vit2x » prend la valeur 10.
vit2x = -10;
}
>>> En cas de survol du « bouton6 », la variable « vit2x » prend la valeur -10.
vit2y = 10;
}
>>> En cas de survol du « bouton7 », la variable « vit2y » prend la valeur 10.
vit1y = -10;
}
>>> En cas de survol du « bouton8 », la variable « vit2y » prend la valeur 10.
5. Publiez.
Téléchargez cet exercice et le fichier .fla ci-dessous.

